package org.codeart.common.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @TableName tb_driver_user
 */
@TableName(value = "tb_driver_user")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class DriverUser implements Serializable {

    /**
     *
     */
    @TableId(value = "id")
    private Long id;

    /**
     *
     */
    @TableField(value = "address")
    private String address;

    /**
     *
     */
    @TableField(value = "driver_name")
    private String driverName;

    /**
     *
     */
    @TableField(value = "driver_phone")
    private String driverPhone;

    /**
     *
     */
    @TableField(value = "driver_gender")
    private Integer driverGender;

    /**
     *
     */
    @TableField(value = "driver_birthday")
    private LocalDate driverBirthday;

    /**
     *
     */
    @TableField(value = "driver_nation")
    private String driverNation;

    /**
     *
     */
    @TableField(value = "driver_contact_address")
    private String driverContactAddress;

    /**
     *
     */
    @TableField(value = "license_id")
    private String licenseId;

    /**
     *
     */
    @TableField(value = "get_driver_license_date")
    private LocalDate getDriverLicenseDate;

    /**
     * 驾驶证有效期
     */
    @TableField(value = "driver_license_on")
    private LocalDate driverLicenseOn;

    /**
     *
     */
    @TableField(value = "driver_license_off")
    private LocalDate driverLicenseOff;

    /**
     * 是否是巡游出租车
     */
    @TableField(value = "taxi_driver")
    private Integer taxiDriver;

    /**
     *
     */
    @TableField(value = "certificate_no")
    private String certificateNo;

    /**
     *
     */
    @TableField(value = "network_car_issue_organization")
    private String networkCarIssueOrganization;

    /**
     *
     */
    @TableField(value = "network_car_issue_date")
    private LocalDate networkCarIssueDate;

    /**
     * 初次领取资格证日期
     */
    @TableField(value = "get_network_car_proof_date")
    private LocalDate getNetworkCarProofDate;

    /**
     * 资格证有效起始日期
     */
    @TableField(value = "network_car_proof_on")
    private LocalDate networkCarProofOn;

    /**
     * 资格证有效结束日期
     */
    @TableField(value = "network_car_proof_off")
    private LocalDate networkCarProofOff;

    /**
     *
     */
    @TableField(value = "register_date")
    private LocalDate registerDate;

    /**
     * 服务类型。1：网络预约出租车 2：巡游出租车 3：死人小客车合乘
     */
    @TableField(value = "commercial_type")
    private Integer commercialType;

    /**
     * 驾驶员合同签署公司
     */
    @TableField(value = "contract_company")
    private String contractCompany;

    /**
     * 合同有效期起始日
     */
    @TableField(value = "contract_on")
    private LocalDate contractOn;

    /**
     * 合同有效期结束日
     */
    @TableField(value = "contract_off")
    private LocalDate contractOff;

    /**
     * 司机状态。0：有效，1；失效。
     */
    @TableField(value = "state")
    private Integer state;

    /**
     *
     */
    @TableField(value = "gmt_create")
    private LocalDateTime gmtCreate;

    /**
     *
     */
    @TableField(value = "gmt_modified")
    private LocalDateTime gmtModified;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}